#!/bin/bash
# todo 定义变量：数据同步日期，表示同步哪一条日志数据
# todo 第1、执行shell脚本时，传递参数
# todo 第2、如果没有传递参数，同步前一天数据

if [ -n "$1" ] ; then
  data_date=$1
else
  data_date=`date -d "-1 days" +%F`
fi

# todo 指标计算语句
DWS_EVENT_LOG_SESSION_AGG_SQL="
INSERT OVERWRITE TABLE jtp_app_dws.dws_event_log_session_agg PARTITION (dt = '${data_date}')
SELECT device_id,
       device_type,
       session_id,
       province,
       city,
       count(session_id)             AS session_pv,
       max(event_ts) - min(event_ts) AS session_during_time,
       split(
               sort_array(
                       collect_list(
                               if(event_id = 'pageView', concat(event_ts, '_', properties['url']), null)
                           )
                   )[0],
               '_'
           )[1]                      AS session_entry_url
FROM jtp_app_dwd.dwd_event_log_detail
WHERE dt = '${data_date}'
GROUP BY device_id, device_type, session_id, province, city
;
"

#todo 执行语句
/opt/module/spark/bin/beeline -u jdbc:hive2://node101:10001 -n bwie -e "${DWS_EVENT_LOG_SESSION_AGG_SQL}"